/**
 * 学习目标：了解路由的底层原理
 */
import React, { Component } from 'react';

export default class App extends Component {
  componentDidMount() {
    // 1 监听url的变化，从location，获取url路径
    window.addEventListener('hashchange', () => {
      console.log(window.location, 'location');
      // 2. 声明一个状态，保存url路径。监听url的变化，更新state.url
      this.setState({
        url: window.location.hash.slice(1),
      });
    });
  }

  state = {
    url: '/home',
  };
  render() {
    const { url } = this.state;
    return (
      <div>
        <h1>app组件</h1>
        <ul>
          <li>
            <a href="#/home">首页</a>
          </li>
          <li>
            <a href="#/my">我的音乐</a>
          </li>
          <li>
            <a href="#/friend">我的朋友</a>
          </li>
        </ul>
        {/*  3. 根据url做显示与隐藏的控制 */}
        {url === '/home' && <Home></Home>}
        {url === '/my' && <MyMusic></MyMusic>}
        {url === '/friend' && <Friend></Friend>}
      </div>
    );
  }
}

// 0. 创建子组件
class Home extends React.Component {
  render() {
    return (
      <div>
        <h1>我是Home组件</h1>
      </div>
    );
  }
}

class MyMusic extends React.Component {
  render() {
    return (
      <div>
        <h1>我是MyMusic组件</h1>
      </div>
    );
  }
}

class Friend extends React.Component {
  render() {
    return (
      <div>
        <h1>我是Friend组件</h1>
      </div>
    );
  }
}
